const mongoose = require("../../../db/db");

/**
 * @description 管理系统 会员等级表

 */
const Schema = mongoose.Schema({
    /**
     * @description 等级名称
     * @example "黄金会员"
     */
    id: {
        type: String,
    },
    levelName: {
        type: String,
        require: true,
        trim: true,
        index: true,
        alias: 'vipName' // 保持与旧字段名兼容
    },
    /**
     * @description 等级编码
     * @example 1(1=普通,2=白银,3=黄金,4=铂金,5=钻石)
     */
    levelCode: {
        type: Number,
        required: true,
        unique: true
    },
    /**
     * @description 等级图标URL
     * @example "/images/vip/gold.png"
     */
    levelIcon: {
        type: String
    },
    /**
     * @description 基础折扣率
     * @example 0.9(表示9折)
     */
    vipDiscount: {
        type: Number,
        require: true,
    },
    /**
     * @description 折扣类型
     * @enum {string} ['百分比', '折扣']
     * @default '百分比'
     */
    vipDiscountType: {
        type: String,
        enum: ['百分比', '折扣'],
        default: '百分比',
        required: true,
    },
    /**
     * @description 折扣值
     * @example 10(表示10%折扣或10元折扣)
     */
    vipDiscountValue: {
        type: Number,
        require: true,
    },
    /**
     * @description 折扣值类型
     * @enum {string} ['百分比', '折扣']
     * @default '百分比'
     */
    vipDiscountValueType: {
        type: String,
        enum: ['百分比', '折扣'],
        default: '百分比',
        required: true,
    },
    /**
     * @description 附加折扣值1
     * @example 5(表示额外5%折扣或5元折扣)
     */
    vipDiscountValue2: {
        type: Number,
    },
    /**
     * @description 附加折扣1类型
     * @enum {string} ['百分比', '折扣']
     * @default '百分比'
     */
    vipDiscountValue2Type: {
        type: String,
        enum: ['百分比', '折扣'],
        default: '百分比',
        required: true,
    },
    /**
     * @description 附加折扣值2
     * @example 3(表示额外3%折扣或3元折扣)
     */
    vipDiscountValue3: {
        type: Number,
    },
    /**
     * @description 附加折扣2类型
     * @enum {string} ['百分比', '折扣']
     * @default '百分比'
     */
    vipDiscountValue3Type: {
        type: String,
        enum: ['百分比', '折扣'],
        default: '百分比',
        required: true,
    },
    /**
     * @description 附加折扣值3
     * @example 2(表示额外2%折扣或2元折扣)
     */
    vipDiscountValue4: {
        type: Number
    },
    /**
     * @description 升级条件
     * @example 1000(表示需要1000积分或1000元消费)
     */
    upgradeCondition: {
        type: Number,
        default: 0,
        comment: '升级所需积分/金额'
    },
    /**
     * @description 等级有效期(天)
     * @example 365(表示1年有效期)
     */
    validityPeriod: {
        type: Number,
        comment: '有效期(天)'
    },
    /**
     * @description 是否默认等级
     * @example false
     */
    isDefault: {
        type: Boolean,
        default: false
    },
    /**
     * @description 是否免运费
     * @example true
     */
    freeShipping: {
        type: Boolean,
        default: false
    },
    /**
     * @description 积分倍数
     * @example 1.5(表示消费1元得1.5积分)
     */
    pointMultiplier: {
        type: Number,
        default: 1
    },
    /**
     * @description 等级特权描述
     * @example "享受专属客服、生日礼包等特权"
     */
    description: {
        type: String
    },
    deleteFlag: { // 逻辑删除字段
        type: Boolean,
        default: false
    },
}, {
    versionKey: false,
    timestamps: {
        createdAt: 'createDate',
        updatedAt: 'updateDate'
    },
    strict: false,
})
const model = mongoose.model("system_custmanager_vipLevel_list", Schema);
module.exports = model;